### Rozdział 19. Bezpieczeństwo – jak chronić stronę przed atakami, zanim do nich dojdzie

Bezpieczeństwo strony internetowej to nie luksus, tylko podstawa. Nawet jeśli dopiero zaczynasz i uważasz, że „przecież nikt się mną nie zainteresuje”, boty i automaty skanują sieć bez przerwy, szukając najprostszych dziur: słabych haseł, nieaktualnych wtyczek, otwartych paneli logowania. Jedna luka wystarczy, by ktoś wstrzyknął złośliwy kod, podmienił treści, rozesłał spam z Twojej domeny albo wykraść dane użytkowników. Dobra wiadomość jest taka, że większość popularnych ataków można zneutralizować kilkoma mądrymi krokami. W tym rozdziale pokażę Ci, jak ustawić podstawy, a następnie wzmocnić ochronę za pomocą wtyczek takich jak Wordfence Security czy Sucuri Security.

#### Co naprawdę chronisz i przed kim się bronisz
Strona to nie tylko pliki na serwerze. To:
- dane użytkowników (formularze, zamówienia, newsletter),
- reputacja domeny (deliverability e‑maili, widoczność w Google),
- czas i pieniądze (przestoje = utracone szanse),
- pozycja w wynikach wyszukiwania (Google obniża ranking stronom z malware).

Najczęstsze zagrożenia to: ataki słownikowe na logowanie (brute force), luki w nieaktualnych wtyczkach/motywach, wstrzyknięcia kodu (SQL/JS), malware ukryte w plikach i bibliotece mediów, a także przeciążenia ruchem (DDoS na poziomie aplikacji).

#### Fundamenty bezpieczeństwa, zanim zainstalujesz wtyczkę
Wtyczka zabezpieczająca działa najlepiej na solidnym podłożu:
- Aktualizacje: WordPress, motyw i wtyczki aktualizuj na bieżąco. Najpierw kopia zapasowa, potem update. Luki najczęściej dotyczą starych wersji.
- Silne dane logowania: unikatowy login (nie „admin”), hasło długie i losowe, włączone 2FA (dwuskładnikowe logowanie) dla administratorów.
- SSL (HTTPS) wszędzie: szyfruje ruch i zapobiega podmianie danych „po drodze”. Wymuś przekierowanie 301 do HTTPS.
- Uprawnienia i konta: jedna rola administratora tam, gdzie to konieczne; dla reszty – edytor, autor. Usuwaj nieużywane konta.
- Kopie zapasowe: codzienne backupy plików i bazy, przechowywane poza serwerem produkcyjnym (np. w chmurze). Testuj przywracanie – sama kopia nie wystarczy.

Te proste zasady eliminują dużą część typowych ataków jeszcze przed ich startem.

#### Wordfence Security – tarcza w Twoim WordPressie
Wordfence to jedna z najpopularniejszych wtyczek bezpieczeństwa dla WordPressa. Oferuje zaporę (WAF), skaner złośliwego oprogramowania, ochronę logowania i monitoring zmian w plikach.

Jak ustawić Wordfence krok po kroku:
1) Instalacja i podstawowa konfiguracja: po aktywacji przejdź kreator, podaj e‑mail do alertów, włącz automatyczne aktualizacje reguł.
2) Zapora (Firewall): przełącz tryb z „learning mode” na „enabled and protecting” po kilku godzinach. W miarę możliwości włącz „extended protection” (modyfikacja `auto_prepend_file`), żeby firewall działał jak najwcześniej w cyklu żądania.
3) Login security: włącz 2FA dla wszystkich kont z rolą administratora i redaktora; aktywuj ograniczenia prób logowania (lockout po X nieudanych próbach).
4) Skaner: ustaw codzienny skan plików i bazy pod kątem malware, podejrzanych zmian i porównań z repo WordPressa. Włącz skan obrazów i plików w niestandardowych katalogach, jeśli to możliwe.
5) Blokady i reguły: blokuj ruch według krajów (tylko w wersji PRO) lub według wzorców (np. zbyt wiele żądań do `wp-login.php`). Ustaw captchę/honeypot przy logowaniu i formularzach, jeśli integrujesz.
6) Alerty e‑mail: zbalansuj czułość – chcesz wiedzieć o realnych zagrożeniach, nie o każdej drobnej informacji. Minimum: wykrycie malware, nieudane logowania, próby exploitów.

Zaletą Wordfence jest „kompletność” i silny WAF po stronie aplikacji. Wadą może być dodatkowe obciążenie – na słabszych hostingach pilnuj ustawień skanera (harmonogram poza godzinami szczytu).

#### Sucuri Security – podejście „od chmury” i czyste logi
Sucuri to platforma bezpieczeństwa z WAF działającym na poziomie chmury (po zmianie DNS ruch przechodzi przez ich sieć, gdzie jest filtrowany, zanim dotrze do Twojego serwera). Wtyczka Sucuri Security na WordPressie dodaje monitorowanie integralności plików, logi i powiadomienia.

Jak działa w praktyce:
- WAF w chmurze (płatny): to warstwa przed Twoim serwerem – świetna przy łagodzeniu ataków DDoS i zaawansowanych exploitów, a także poprawia cache statycznych zasobów globalnie.
- Wtyczka (darmowa): monitoruje zmiany w plikach, użytkownikach, logach; pozwala szybko wykryć podejrzane działania i wysłać alert.
- Czyszczenie po incydencie: Sucuri oferuje usługę usuwania malware i blacklist (usługa płatna), często ratując reputację domeny po infekcji.

Kiedy Sucuri ma przewagę:
- gdy potrzebujesz ochrony przed „ciężkim” ruchem i chcesz odciążyć serwer, 
- gdy zależy Ci na prostych, czytelnych logach bezpieczeństwa bez zaglądania w system serwera,
- gdy chcesz połączyć WAF i CDN w jednej usłudze.

Wordfence i Sucuri nie powinny działać „pełną parą” jednocześnie (dwa WAF-y mogą się gryźć). Zwykle wybiera się jedno podejście: WAF aplikacyjny (Wordfence) albo WAF w chmurze (Sucuri/Cloudflare).

#### Dodatkowe wzmocnienia, które warto rozważyć
- Ochrona panelu logowania: zmień standardowy adres `/wp-login.php` na dedykowany (ostrożnie – pamiętaj o dokumentacji dla zespołu). Włącz rate limiting i captchę.
- Plik `xmlrpc.php`: wyłącz, jeśli go nie używasz (częsty wektor ataku brute force). Wiele wtyczek bezpieczeństwa ma przełącznik do tego celu.
- Prawa do plików i katalogów: 644 dla plików, 755 dla folderów. Zabroń edycji plików z panelu (`DISALLOW_FILE_EDIT` w `wp-config.php`), żeby utrudnić atakującemu umieszczanie backdoorów.
- Separacja środowisk: pracuj na stagingu i wdrażaj zmiany z repozytorium (Git). Mniej „żywych” edycji na produkcji = mniej szans na błąd.
- Nagłówki bezpieczeństwa: `Content-Security-Policy` (CSP), `X-Frame-Options`, `X-Content-Type-Options`, `Referrer-Policy`, `Strict-Transport-Security`. Część hostingów i wtyczek potrafi je ustawić automatycznie.
- Cloudflare (warstwa sieciowa): nawet darmowy plan daje podstawowy WAF, rate limiting i ukrycie IP serwera za proxy.

Te kroki tworzą „cebulę” zabezpieczeń – wiele warstw utrudnia atak, a pojedyncza luka nie rozwala całego systemu.

#### Co robić, gdy coś pójdzie nie tak – plan reakcji na incydent
Nawet najlepsza ochrona nie daje 100% gwarancji. Miej gotowy prosty scenariusz:
1) Izolacja: jeśli widzisz infekcję lub masowe przekierowania, włącz tryb konserwacji albo blokadę ruchu (WAF), odłącz dostęp edytorom.
2) Kopia i logi: wykonaj snapshot plików i bazy, pobierz logi serwera/wtyczki. Te dane będą kluczowe do analizy.
3) Skan i czyszczenie: uruchom skan wtyczką (Wordfence/Sucuri). W razie potrzeby skorzystaj z usług czyszczenia (Sucuri/Wordfence premium) – liczy się czas.
4) Zmiana haseł: wszyscy administratorzy, FTP/SFTP, baza danych, klucze aplikacyjne (`AUTH_KEY`, itp.).
5) Aktualizacje i łatki: zaktualizuj wszystko, usuń nieużywane motywy/wtyczki, zamknij `xmlrpc.php` jeśli zbędny.
6) Weryfikacja w Google: sprawdź w Search Console, czy nie ma ostrzeżeń o malware; po czyszczeniu poproś o ponowne sprawdzenie.
7) Post‑mortem: co było przyczyną? błąd wtyczki, słabe hasło, brak aktualizacji? Dodaj jedną warstwę ochrony więcej, by uniknąć powtórki.

Szybka reakcja minimalizuje szkody w SEO i reputacji.

#### Wydajność a bezpieczeństwo – zachowaj równowagę
Wtyczki bezpieczeństwa pracują aktywnie i mogą zużywać zasoby. Kilka wskazówek:
- Na małych hostingach ogranicz częstotliwość skanów (np. nocą) i zakres (tylko krytyczne katalogi).
- Jeśli używasz WAF w chmurze (Sucuri/Cloudflare), wyłącz zbędne moduły skanera po stronie WordPressa, żeby nie dublować pracy.
- Monitoruj czasy odpowiedzi i raporty z narzędzi typu PageSpeed/Lighthouse po instalacji wtyczek – wprowadzaj korekty.

Bezpieczeństwo nie powinno spowalniać strony na tyle, by psuło doświadczenie użytkownika. Da się to zbalansować.

#### Edukacja zespołu – najsłabsze ogniwo bywa ludzkie
- Phishing: ostrzegaj zespół, by nie klikał w „pilne” linki proszące o logowanie do WordPressa/hostingu. Zawsze sprawdzaj domenę nadawcy.
- Dostępy: dawaj najmniejszy potrzebny zakres uprawnień i czasowe dostępy dla wykonawców. Po zakończeniu prac – usuwaj.
- Procedury: prosty dokument „co robić w razie X” skraca reakcję i zmniejsza stres.

Technologia pomaga, ale higiena pracy jest równie ważna.

### Podsumowanie rozdziału

Dobre bezpieczeństwo to suma podstaw i narzędzi: aktualizacje, silne loginy, SSL, kopie zapasowe – oraz mądra wtyczka, która filtruje ruch i ostrzega, gdy coś idzie nie tak. Wordfence daje mocną zaporę i skaner w samym WordPressie, Sucuri przenosi część ochrony do chmury i odciąża serwer. Wybierz jedno podejście i skonfiguruj je porządnie, zamiast mieszać wiele półśrodków. Dodaj kilka warstw: 2FA, blokady logowania, wyłączony `xmlrpc.php`, rozsądne uprawnienia i nagłówki bezpieczeństwa. Miej plan na incydenty i regularnie testuj kopie. Dzięki temu Twoja strona będzie nie tylko funkcjonalna i szybka, ale też odporna na najczęstsze ataki – a Ty zyskasz spokój, że to, na co pracujesz, nie zniknie przez jeden nieostrożny klik albo nieaktualną wtyczkę.